/*
 * File:   rota.h
 * Author: daniel
 *
 * Created on 6 de Junho de 2011, 20:19
 */

#ifndef _ROTA_H
#define	_ROTA_H

using std::vector;

class Rota{
public:
	Rota(Rota const &r);


	Rota(int dimensao);//vector<int>, vector<double>, vector<double>, vector<double>, vector<double>,
//			vector<double>, vector<double>, vector<double>, vector<double>);

	//    void setTempoTotalDestaRota(int);
	//
	//    void setCargaMaximaDoVeiculo(int);
	//
	//    void setCacidadeDoVeiculo(int);
	//
	//    void setTempoMaximoDeViagemPermitido(int);


	//
	//    double getTempoTotalDestaRota();
	//
	//    double getCargaMaximaDoVeiculo();
	//
	//    double getCacidadeDoVeiculo();
	//
	//    double getTempoMaximoDeViagemPermitido();

	~Rota();

	double getDistanciaPercorridaDaRota();
	double getTempoDoPercursoDaRota();
	double getQuantidadeDeAtendimentos();
	double getCusto_Dist_Tempo_N_De_Atendimentos_Da_Rota();

	void setDistanciaPercorridaDaRota(double);
	void setTempoDoPercursoDaRota(double);
	void setQuantidadeDeAtendimentos(double);
	void setCusto_Dist_Tempo_N_De_Atendimentos_Da_Rota(double);

	void setRota(vector<int>);
	vector<int> getRota();
//	vector<int>* getPonteiroRota();

	vector<double> getA();
	vector<double> getB();
	vector<double> getD();
	vector<double> getW();
	vector<double> getR();
	vector<double> getT();
	vector<double> getQ();
	vector<double> getF();

	void setA(int);
	void setB(int);
	void setD(int);
	void setW(int);
	void setR(int);
	void setT(int);
	void setQ(int);
	void setF(int);


	void setVectorA(vector<double>);
	void setVectorB(vector<double>);
	void setVectorD(vector<double>);
	void setVectorW(vector<double>);
	void setVectorR(vector<double>);
	void setVectorT(vector<double>);
	void setVectorQ(vector<double>);
	void setVectorF(vector<double>);


	double funcaoObjetivoRota;
	double distanciaPercorridaDaRota;
	double tempoDoPercursoDaRota;
	double quantidadeDeAtendimentos;
	double custo_Dist_Tempo_N_De_Atendimentos_Da_Rota;

	//vector<int> rota;
	vector<int> rota;
	vector<double> A;
	vector<double> B;
	vector<double> D;
	vector<double> W;
	vector<double> R;
	vector<double> T;
	vector<double> Q;
	vector<double> F;

	//    int tempoTotalDestaRota;
	//    int cargaMaximaDoVeiculo;
	//    int cacidadeDoVeiculo;
	//    int tempoMaximoDeViagemPermitido;
};
#endif	/* _ROTA_H */
